﻿#region

using System;
using System.Collections.Generic;

#endregion

namespace TvdbLib.Data
{
    /// <summary>
    ///     Class that holds all user information
    /// </summary>
    [Serializable]
    public class TvdbUser
    {
        #region Fields

        private List<int> m_userFavorites;
        private String m_userIdentifier;
        private String m_userName;
        private TvdbLanguage m_userPreferredLanguage;

        #endregion Fields

        #region Constructors

        /// <summary>
        ///     TvdbUser constructor
        /// </summary>
        /// <param name="_username"> Name of the user, can be choosen freely </param>
        /// <param name="_userIdentifier"> User identifier from http://thetvdb.com </param>
        public TvdbUser(String _username, String _userIdentifier)
            : this()
        {
            m_userName = _username;
            m_userIdentifier = _userIdentifier;
        }

        /// <summary>
        ///     TvdbUser constructor
        /// </summary>
        public TvdbUser()
        {
        }

        #endregion Constructors

        #region Properties

        /// <summary>
        ///     List of user favorites
        /// </summary>
        public List<int> UserFavorites
        {
            get { return m_userFavorites; }
            set { m_userFavorites = value; }
        }

        /// <summary>
        ///     This is the unique identifier assigned to every user. They can access this value by visiting the account settings page on the site. This is a 16 character alphanumeric string, but you should program your applications to handle id strings up to 32 characters in length.
        /// </summary>
        public String UserIdentifier
        {
            get { return m_userIdentifier; }
            set { m_userIdentifier = value; }
        }

        /// <summary>
        ///     Username
        /// </summary>
        public String UserName
        {
            get { return m_userName; }
            set { m_userName = value; }
        }

        /// <summary>
        ///     Preferred language of the user
        /// </summary>
        public TvdbLanguage UserPreferredLanguage
        {
            get { return m_userPreferredLanguage; }
            set { m_userPreferredLanguage = value; }
        }

        #endregion Properties
    }
}